1. Field of the Invention
The present invention relates to relational database systems, and more particularly to a relational database system that facilitates persistent storage of "objects" from an object-oriented programming system within a tabular-relational framework. The present invention additionally provides a graphical user interface for viewing and performing operations on object-relational data.
2. Related Art
As object-oriented programming systems are increasingly used by computer programmers, numerous software tools and systems have been adapted to handle objects and their related methods. However, existing relational database systems are not designed to accommodate and manipulate objects, which are typically composed of attributes, some of which may reference other objects. For example, a conventional relational database system stores data in tables, which comprise rows and columns of entries containing scalar values. At present, it is not possible to store objects in these tables because the entries in these tables are not designed to accommodate objects.
Additionally, a number of graphical tools are presently used to manipulate and view database structures such as tables. However, existing tools are not designed to manipulate and view database structures that store objects. Existing tools only allow a user to view and manipulate scalar values stored in tables; they do not allow the constituent attributes of an object to be viewed and manipulated, nor do they allow objects referenced within other objects to be retrieved for viewing and manipulation.
Hence, what is needed is a database system that facilitates persistent storage of objects. Additionally, what is needed are database tools that allow objects stored within a database system to be easily viewed and manipulated.
Another issue in viewing stored objects in a database system is the fact that many database systems are designed to work within a client-server distributed system. Typically, a client computer system accesses information contained in a database on a server computer system. In order to achieve a reasonable level of performance in such a system, it is desirable to minimize the number of communications that take place between client and server computer systems across the communication network. These communications are typically time-consuming and can potentially clog up the communication network. To this end, some existing distributed database systems attempt to minimize the number of communications that take place by first examining a query on the client to ensure the query properly references existing database structures on the server before sending the query to the server. If the query does not properly reference existing database structures on the server, the query is not sent to the server. Instead, a user on the client computer system is asked to correct the query or enter a new query. In this way, unnecessary communications from client to server computer systems are avoided. However, these distributed database systems are not designed to accommodate objects. In particular, these distributed database systems are not designed to determine whether a query properly references object data stored on the server.
Hence, what is needed is a distributed database system that can determine whether a query properly references object data stored in database structures on a server before the query is sent to the server.